{{tag>Intrepid réseau internet courriel tutoriel BROUILLON}}

----

====== Comment envoyer l’adresse IP de sa box automatiquement par courriel (SMTP) en ligne de commande ? ======
===== Envoyer un mail par SMTP en ligne de commande =====
==== Installation ====

[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://msmtp|msmtp]]**.

Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur [[:tutoriel:comment_supprimer_un_paquet|la suppression d'un paquet]].

<note>Ce tutoriel se base sur l'utilisation de msmtp. Il existe bien sûr d'autres solutions pour envoyer des courriels en ligne de commande. ssmtp propose les mêmes fonctionnalités en se basant sur un fichier de configuration très semblable, par exemple.</note>

==== Configuration ====

  * [[:tutoriel:comment_modifier_un_fichier|Créez et ouvrez le fichier]] **~/.msmtprc** (dans votre dossier personnel).

<note important>Ne pas utiliser de commande sudo. C'est bien l'utilisateur qui envoie les mails.</note>
<file>nano ~/.msmtprc</file>
  account default
  host smtp.monfai.fr
  from prenom.nom@monfai.fr
  auth off
  #auth on
  #si jamais auth off ne passe pas
  user prenom.nom
  #si votre fai vous identifie plus clairement si vous reprécisez le domaine, alors plutôt cela :
  #user prenom.nom@fai.fr
  password monmotdepasse

  * Dissimuler ce fichier qui contient votre mot de passe en clair
<file>chmod 600 ~/.msmtprc</file>
== Configurations spécifiques (en fin de tuto) ==
  * fichier .msmtprc pour [[comment_envoyer_un_mail_par_smtp_en_ligne_de_commande#gmail|gmail]].


==== Utilisation ====
  * Pour envoyer le contenu d'un fichier texte comme message:
<file>cat readme.txt | msmtp johnny@liday.ch</file>
  * Pour envoyer un fichier binaire, ou compressé en pièce jointe :
<file>uuencode application.zip | msmtp johnny@liday.ch</file>
==== Vérification ====
  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu



===== Envoyer l'IP de sa box automatiquement =====



==== Récupérer l'IP externe de sa box ====

<file>GET whatismyip.org</file>
  * Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
<file>nano ~/getip</file>
  GET whatismyip.org > .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
<file>sh ~/getip</file>
<file>cat ~/.myip</file>
  92.122.18.135
  92.122.18.135
  92.122.18.135

==== Envoyer son IP de box à son courriel au bureau ====

  * On a vu cela juste avant :

<file>cat ~/.myip | msmtp johnny@whitehouse.gov</file>

==== Automatiser l'envoi de son IP de box vers le bureau ====

  * [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] ~/getip pour qu'il intègre la commande msmtp à la dernière ligne:
<file>nano ~/getip</file>
  ...
  cat .myip | msmtp johnny@whitehouse.gov

  * Rendre le script exécutable :
<file>chmod 700 ~/getip</file>

=== Utilisation ===

  * Lancer le script
<file>sh ~/getip</file>

=== Vérification ===

  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche ... si c'est là que votre box est branchée.


===== Programmation de l'envoi automatique =====

==== Par la crontab ====

Le système [[..\cron|crontab]] intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

=== Modification de la crontab ===

  * Si la crontab de l'utilisateur existe, on la redirige vers un fichier
<file>crontab -l > cron</file>
<note important>On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !</note>
  * Puis on [[:tutoriel:comment_editer_un_fichier|modifie/crée le fichier]] cron en y ajoutant notre ligne de programmation :
<file>nano cron</file>
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  # à 08:23 12:23 15:23 et 18:23 tous les jours du lundi au vendredi
  # parce que les soirs et week-end je suis à la maison
  # et que c'est encore plus simple de récupérer mon IP

=== Injection des modifications de la crontab ===

  * Créer le fichier cron ne suffit pas, il faut encore l'injecter dans le système crontab :
<file>crontab ~/cron</file>

== Vérification de la crontab ==

<file>crontab -l</file>
  ...
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  ...

== Nettoyage ==

  * Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
<file>rm ~/cron</file>

<note>
**Remarques :**
  * Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation
  * la configuration de msmtp peut être beaucoup plus pointue, //man// et //documentation// peuvent vous aider.
</note>
===== Configurations particulières ====
=== gmail ===
  * [[http://mail.google.com|gmail]] impose l'utilisation d'une couche [[http://fr.wikipedia.org/wiki/Transport_Layer_Security|TLS]]. Il faut éditer le .msmtprc en conséquence (merci à imhotep59) :\\ 
<file>~/.msmtprc</file>
  account default
  tls on
  host smtp.gmail.com
  from nom_user@gmail.com
  auth on
  user nom_user
  password password_user
  tls_starttls off
  tls_certcheck off

===== Références =====

  * [[:cron|Crontab]]
  * Le site officiel de msmtp : [[http://msmtp.sourceforge.net/]]


== Contributeurs ==
[[utilisateurs:kerkael]] création de la page le 21/08/2009